package cn.yedong.basic.listener;

import cn.yedong.system.service.IPermissionService;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

@WebListener//申明自定义的web监听器，被容器注册和使用
public class PermissionScanInitListener implements ServletContextListener {
    @Autowired
    private IPermissionService permissionService;

    //Spring容器初始化之后被调用
    @Override
    public void contextInitialized(ServletContextEvent sce) {
//        System.out.println("上下文已经创建......");
        //扫描@RequestMapping 和方法上面的注解  获取name,sn,url

        new Thread(new Runnable() {//不用主线程，用一个新的线程去执行
            @Override
            public void run() {
                //可以在这里扫描我们自定义的注解，将@PreAuthorize，将所有的信息存储到t_permission表中
                //这样就无需手动录入信息到permission表中
                System.out.println("权限初始化开始.............");
                permissionService.scanPermission();
                System.out.println("权限初始化结束.............");
            }
        }).start();
    }

    //容器销毁时执行的方法
    @Override
    public void contextDestroyed(ServletContextEvent sce) {

    }
}
